package com.sdvdxl.util;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

public class LoggerUtil {
	private Logger logger;
	private StringBuilder sb = new StringBuilder();
	
	public LoggerUtil(Class<?> clazz) {
		logger = LogManager.getLogger(clazz);
	}
	
	public void info(String msg) {
		logger.info(msg);
	}
	public void debug(String msg) {
		logger.debug(msg);;
	}
	public void error(String msg) {
		logger.error(msg);
	}
	public void warn(String msg) {
		logger.warn(msg);;
	}
	public void fatal(String msg) {
		logger.fatal(msg);;
	}
	public void trace(String msg) {
		logger.trace(msg);
	}
	
	public void info(Exception e) {
		logger.info(handleException(e));
	}
	
	public void debug(Exception e) {
		logger.debug(handleException(e));
	}
	
	public void error(Exception e) {
		logger.error(handleException(e));
	}
	
	public void fatal(Exception e) {
		logger.fatal(handleException(e));
	}
	
	public void warn(Exception e) {
		logger.warn(handleException(e));
	}
	
	public void trace(Exception e) {
		logger.trace(handleException(e));
	}
	
	private String handleException(Exception e) {
		sb.delete(0, sb.length());
		sb.append(e+"\n");
		for (StackTraceElement st : e.getStackTrace()) {
			sb.append(st+"\n");
		}
		
		return sb.toString();
	}
}
